home *** CD-ROM | disk | FTP | other *** search
- 100 'Charge History ("CHARGEHIST")
- 110 CLS
- 120 COLOR 0,15 : PRINT "Charge Account History" : COLOR 15,0
- 130 DEFDBL A-Z
- 140 MONEYFMT$ = "$$##,###,###.##"
- 150 'Define rounding function
- 160 DEF FNR (V) = SGN (V) * INT (ABS (V) * 100 + .5) / 100
- 170 ' Let user enter data
- 180 PRINT : PRINT
- 190 PRINT "Do not enter dollar signs or commas"
- 200 PRINT
- 210 INPUT "Credit limit: ", CREDITLIMIT
- 220 INPUT "Initial balance: ", BALANCE
- 230 INPUT "Monthly purchases: ", PURCHASES
- 240 INPUT "Annual interest charge (in percent): ", CR
- 250 INPUT "Monthly payment (as percentage of balance): ", RPMT
- 260 INPUT "Minimum monthly payment: ", MINPMT
- 270 PRINT "Enter date of first payment"
- 280 INPUT " Month (1-12): ", MONTH
- 290 INPUT " Year: ", YEAR
- 300 ' Initialize variables
- 310 TOTALPURCHASES = 0
- 320 TOTALPAYMENTS = 0
- 330 TOTALINTEREST = 0
- 340 CREDITAVAIL = CREDITLIMIT - BALANCE
- 360 M = 0
- 370 MONTHNUM = YEAR * 12 + MONTH
- 380 PRINT
- 390 PRINT "Press space bar to continue"
- 400 ' Compute monthly balances
- 410 WHILE CREDITAVAIL > 0
- 420 K$ = INKEY$ : IF K$ = "" THEN GOTO 420
- 430 M = M + 1
- 440 YEAR = (MONTHNUM - 1) \ 12
- 450 MONTH = MONTHNUM - YEAR * 12
- 460 MONTHNUM = MONTHNUM + 1
- 470 ' Calculate month's payments
- 480 BALANCE = BALANCE + PURCHASES
- 490 INTERESTDUE = FNR (BALANCE * CR / 1200)
- 500 PMT = INT (BALANCE * RPMT + .5) / 100
- 510 IF PMT < MINPMT THEN PMT = MINPMT
- 520 IF PMT > BALANCE + INTERESTDUE THEN PMT = BALANCE + INTERESTDUE
- 530 BALANCE = FNR (BALANCE - PMT + INTERESTDUE)
- 540 ' Compute cumulative totals
- 550 TOTALPURCHASES = TOTALPURCHASES + PURCHASES
- 560 TOTALPAYMENTS = TOTALPAYMENTS + PMT
- 570 TOTALINTEREST = TOTALINTEREST + INTERESTDUE
- 580 CREDITAVAIL = CREDITLIMIT - BALANCE
- 590 ' Print results
- 600 PRINT : PRINT
- 610 PRINT "Payment number: "; M
- 620 PRINT "Date: "; MONTH; "/"; YEAR
- 630 PRINT "Credit available: "; TAB(30); USING MONEYFMT$; CREDITAVAIL
- 640 PRINT "New balance: "; TAB(30); USING MONEYFMT$; BALANCE
- 650 PRINT "Total purchases: "; TAB(30); USING MONEYFMT$; TOTALPURCHASES
- 660 PRINT "Payment: "; TAB(30); USING MONEYFMT$; PMT
- 670 PRINT "Finance charge: "; TAB(30); USING MONEYFMT$; INTERESTDUE
- 680 PRINT "Cumulative payments: "; TAB(30); USING MONEYFMT$; TOTALPAYMENTS
- 690 PRINT "Cumulative finance charges: "; TAB(30); USING MONEYFMT$; TOTALINTEREST
- 700 WEND
- 710 END